package com.zzh.ssm.exception;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

/**
 * @author zhangzhenhua
 * @des  全局异常处理器
 * @date 2017年1月13日  上午12:33:06
 */
public class CustomExceptionResolver  implements HandlerExceptionResolver{

	/* (non-Javadoc)
	 * 
	 * 
	 * ex：系统抛出异常
	 */
	@Override
	public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
			Exception ex) {
		//handler 就是处理器适配器要执行Handler对象（只有method）
		
		//解析异常类型
		//如果是系统自定义异常，直接取出异常信息，在错误页面展示
		String message=null;
		CustomException customException =null;
		if(ex instanceof CustomException){
			//message=ex.getMessage();  //(CustomException)
			customException=(CustomException) ex;
			
		}else {
			//如果不是自定义异常，则构造一个自定义异常类型（未知错误）
			//message="未知错误";
			customException=new CustomException("未知错误");
		}
		message=customException.getMessage();
		ModelAndView mad = new ModelAndView();
		mad.setViewName("error");
		mad.addObject("message", message);
		
		
		return mad;
	}

}
